package com.jymj.service.impl;

import com.jymj.dao.ReportDao;
import com.jymj.entity.SysUserEntity;
import com.jymj.entity.SysXzqEntity;
import com.jymj.entity.YlEntity;
import com.jymj.entity.data.ParameterEntity;
import com.jymj.service.ReportService;
import com.jymj.utils.ShiroUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * Created by ${lc} on 2020/4/1.
 */
@Service
public class ReportServiceImpl implements ReportService {
    @Autowired
    private ReportDao reportDao;

    @Override
    public SysXzqEntity queryZhen() {
        SysUserEntity sysUserEntity = ShiroUtils.getUserEntity();
        return reportDao.queryZhen(sysUserEntity.getCode());
    }

    @Override
    public List<YlEntity> queryYl(ParameterEntity parameterEntity) {
        List<YlEntity> ylEntities = reportDao.queryYl(parameterEntity, ShiroUtils.getUserEntity());
        return ylEntities;
    }

    @Override
    public int queryYlTotal(ParameterEntity parameterEntity) {
        return reportDao.queryYlTotal(parameterEntity, ShiroUtils.getUserEntity());
    }

    @Override
    public List<SysXzqEntity> queryCun(Map<String, Object> params) {
        params.put("sysUser", ShiroUtils.getUserEntity());
        List<SysXzqEntity> sysXzqEntities = reportDao.queryCun(params);
        int hs = 0;
        int rk= 0;
        int zs= 0;
        BigDecimal zhzdmj  = new BigDecimal(0);
        BigDecimal zhjzmj  = new BigDecimal(0);
        int  ncount = 0;
        int  feincount = 0;
        BigDecimal zhaijzmj = new BigDecimal(0);//		宅基地建筑面积平米
        BigDecimal zhjzhj = new BigDecimal(0);//		宅建筑面积户均
        int zzcy= 0;//		集体组织成员
        BigDecimal zhaizdmj = new BigDecimal(0);//
        BigDecimal area = new BigDecimal(0);//面积
        int count4= 0;
        int count46= 0;
        int count68= 0;
        int count81= 0;
        int count1= 0;
        int yhdz= 0;//		一户多宅宗数  1
        int qc= 0;//			迁出宗数5
        int bdmm= 0;//		本地买卖宗数2
        int wdmm= 0;//			外地买卖宗数3
        int apptype= 0;//翻建状态---宅基地情况
        int sqtype= 0;//申请状态
        int lztype= 0;//流转状态
        int tctype= 0;//退出状态
        int cqsp= 0;//审批----产权来源
        int cqzj= 0;//自建
        int cqmm= 0;//买卖
        int cqjc= 0;//继承
        int cqqt= 0;//其他
        int syqkzz= 0;//自住----使用情况
        int syqkxz= 0;//闲置
        int syqkcz= 0;//出租
        int syqkjy= 0;//经营
        int jcnd83= 0;//1983前---建成年代
        int jcnd83h= 0;//1983后
        int jzjgjyf= 0;//简易房----建筑结构
        int jzjgzm= 0;//砖木结构
        int jzjggj= 0;//钢筋混凝土结构
        int jzjgg= 0;//钢结构
        int cs1= 0;//2层----层数
        int cs2= 0;//3层
        int cs3= 0;//3层以上
        for (SysXzqEntity sysXzqEntity:sysXzqEntities){
            hs += sysXzqEntity.getHs() == null ? 0 : sysXzqEntity.getHs();
            rk += sysXzqEntity.getRk() == null ? 0 : sysXzqEntity.getRk();
            zs += sysXzqEntity.getZs() == null ? 0 : sysXzqEntity.getZs();
            zhzdmj  = zhzdmj.add(sysXzqEntity.getZhzdmj() == null ? new BigDecimal(0) : sysXzqEntity.getZhzdmj());
            zhjzmj  = zhjzmj.add(sysXzqEntity.getZhjzmj() == null ? new BigDecimal(0) : sysXzqEntity.getZhjzmj());
            ncount += sysXzqEntity.getNcount() == null ? 0 : sysXzqEntity.getNcount();
            feincount += sysXzqEntity.getFeincount() == null ? 0 : sysXzqEntity.getFeincount();
            zhaijzmj = zhaijzmj.add(sysXzqEntity.getZhaijzmj() == null ? new BigDecimal(0) : sysXzqEntity.getZhaijzmj());//		宅基地建筑面积平米
            zhjzhj = zhjzhj.add(sysXzqEntity.getZhjzhj() == null ? new BigDecimal(0) : sysXzqEntity.getZhjzhj());//		宅建筑面积户均
            zzcy += sysXzqEntity.getZzcy() == null ? 0 : sysXzqEntity.getZzcy();//		集体组织成员
            zhaizdmj = zhaizdmj.add(sysXzqEntity.getZhaizdmj() == null ? new BigDecimal(0) : sysXzqEntity.getZhaizdmj());//
            area = area.add(sysXzqEntity.getArea() == null ? new BigDecimal(0) : sysXzqEntity.getArea());//面积
            count4 += sysXzqEntity.getCount4() == null ? 0 : sysXzqEntity.getCount4();
            count46 += sysXzqEntity.getCount46() == null ? 0 : sysXzqEntity.getCount46();
            count68 += sysXzqEntity.getCount68() == null ? 0 : sysXzqEntity.getCount68();
            count81 += sysXzqEntity.getCount81() == null ? 0 : sysXzqEntity.getCount81();
            count1 += sysXzqEntity.getCount1() == null ? 0 : sysXzqEntity.getCount1();
            yhdz += sysXzqEntity.getYhdz() == null ? 0 : sysXzqEntity.getYhdz();//		一户多宅宗数  1
            qc += sysXzqEntity.getQc() == null ? 0 : sysXzqEntity.getQc();//			迁出宗数5
            bdmm += sysXzqEntity.getBdmm() == null ? 0 : sysXzqEntity.getBdmm();//		本地买卖宗数2
            wdmm += sysXzqEntity.getWdmm() == null ? 0 : sysXzqEntity.getWdmm();//			外地买卖宗数3
            apptype += sysXzqEntity.getApptype() == null ? 0 : sysXzqEntity.getApptype();//翻建状态---宅基地情况
            sqtype += sysXzqEntity.getSqtype() == null ? 0 : sysXzqEntity.getSqtype();//申请状态
            lztype += sysXzqEntity.getLztype() == null ? 0 : sysXzqEntity.getLztype();//流转状态
            tctype += sysXzqEntity.getTctype() == null ? 0 : sysXzqEntity.getTctype();//退出状态
            cqsp += sysXzqEntity.getCqsp() == null ? 0 : sysXzqEntity.getCqsp();//审批----产权来源
            cqzj += sysXzqEntity.getCqzj() == null ? 0 : sysXzqEntity.getCqzj();//自建
            cqmm += sysXzqEntity.getCqmm() == null ? 0 : sysXzqEntity.getCqmm();//买卖
            cqjc += sysXzqEntity.getCqjc() == null ? 0 : sysXzqEntity.getCqjc();//继承
            cqqt += sysXzqEntity.getCqqt() == null ? 0 : sysXzqEntity.getCqqt();//其他
            syqkzz += sysXzqEntity.getSyqkzz() == null ? 0 : sysXzqEntity.getSyqkzz();//自住----使用情况
            syqkxz += sysXzqEntity.getSyqkxz() == null ? 0 : sysXzqEntity.getSyqkxz();//闲置
            syqkcz += sysXzqEntity.getSyqkcz() == null ? 0 : sysXzqEntity.getSyqkcz();//出租
            syqkjy += sysXzqEntity.getSyqkjy() == null ? 0 : sysXzqEntity.getSyqkjy();//经营
            jcnd83 += sysXzqEntity.getJcnd83() == null ? 0 : sysXzqEntity.getJcnd83();//1983前---建成年代
            jcnd83h += sysXzqEntity.getJcnd83h() == null ? 0 : sysXzqEntity.getJcnd83h();//1983后
            jzjgjyf += sysXzqEntity.getJzjgjyf() == null ? 0 : sysXzqEntity.getJzjgjyf();//简易房----建筑结构
            jzjgzm += sysXzqEntity.getJzjgzm() == null ? 0 : sysXzqEntity.getJzjgzm();//砖木结构
            jzjggj += sysXzqEntity.getJzjggj() == null ? 0 : sysXzqEntity.getJzjggj();//钢筋混凝土结构
            jzjgg += sysXzqEntity.getJzjgg() == null ? 0 : sysXzqEntity.getJzjgg();//钢结构
            cs1 += sysXzqEntity.getCs1() == null ? 0 : sysXzqEntity.getCs1();//2层----层数
            cs2 += sysXzqEntity.getCs2() == null ? 0 : sysXzqEntity.getCs2();//3层
            cs3 += sysXzqEntity.getCs3() == null ? 0 : sysXzqEntity.getCs3();//3层以上
        }
        SysXzqEntity sysXzqEntity = new SysXzqEntity();
        sysXzqEntity.setName("总计");
        sysXzqEntity.setHs(hs);
        sysXzqEntity.setRk(rk);
        sysXzqEntity.setZs(zs);
        sysXzqEntity.setZhzdmj(zhzdmj);
        sysXzqEntity.setZhjzmj(zhjzmj);
        sysXzqEntity.setNcount(ncount);
        sysXzqEntity.setFeincount(feincount);
        sysXzqEntity.setZhaijzmj(zhaijzmj);
        sysXzqEntity.setZhjzhj(zhjzhj);
        sysXzqEntity.setZzcy(zzcy);
        sysXzqEntity.setZhaizdmj(zhaizdmj);
        sysXzqEntity.setArea(area);
        sysXzqEntity.setCount4(count4);
        sysXzqEntity.setCount46(count46);
        sysXzqEntity.setCount68(count68);
        sysXzqEntity.setCount81(count81);;
        sysXzqEntity.setCount1(count1);
        sysXzqEntity.setYhdz(yhdz);
        sysXzqEntity.setQc(qc);
        sysXzqEntity.setBdmm(bdmm);
        sysXzqEntity.setWdmm(wdmm);
        sysXzqEntity.setApptype(apptype);
        sysXzqEntity.setSqtype(sqtype);
        sysXzqEntity.setLztype(lztype);
        sysXzqEntity.setTctype(tctype);
        sysXzqEntity.setCqsp(cqsp);
        sysXzqEntity.setCqzj(cqzj);
        sysXzqEntity.setCqmm(cqmm);
        sysXzqEntity.setCqjc(cqjc);
        sysXzqEntity.setCqqt(cqqt);
        sysXzqEntity.setSyqkzz(syqkzz);
        sysXzqEntity.setSyqkxz(syqkxz);
        sysXzqEntity.setSyqkcz(syqkcz);
        sysXzqEntity.setSyqkjy(syqkjy);
        sysXzqEntity.setJcnd83(jcnd83);
        sysXzqEntity.setJcnd83h(jcnd83h);
        sysXzqEntity.setJzjgjyf(jzjgjyf);
        sysXzqEntity.setJzjgzm(jzjgzm);
        sysXzqEntity.setJzjggj(jzjggj);
        sysXzqEntity.setJzjgg(jzjgg);
        sysXzqEntity.setCs1(cs1);
        sysXzqEntity.setCs2(cs2);
        sysXzqEntity.setCs3(cs3);
        sysXzqEntities.add(sysXzqEntity);
        return sysXzqEntities;
    }

    @Override
    public int queryCunTotal(Map<String, Object> params) {
        params.put("sysUser", ShiroUtils.getUserEntity());
        return reportDao.queryCunTotal(params);
    }
}
